安安~~
這次2025鐵人賽的內容,我想帶大家一起聊聊「作業系統」(Operating System, OS)。OS是電腦科學領域的基礎,幾乎每個程式設計、系統開發、甚至網路相關的知識,都繞不開作業系統的概念。但老實說,OS 也是許多人學習時覺得抽象、難懂、甚至有點硬的一門課。所以我想用這一個系列,幫我也幫大家把複雜的作業系統內容拆解成好入口的小篇幅,每天花一點時間,就能慢慢把 OS 核心知識補起來!
我們接下來的章節如下:(對祈求不要有甚麼意外...)
我們會先快速描繪作業系統的全貌,包括架構、系統呼叫、核心與使用者模式、以及不同的設計模型。這能幫助你先建立地圖,不至於在細節中迷路。
這章節會來談程式在系統中是如何被管理的。從程序的生命週期、狀態轉換,到程序之間如何通訊,奠定後續理解執行緒、同步化與排程的基礎。
談完process之後,我們就會來談執行緒與並行的運作方式,說明為什麼現代系統需要多工處理,以及在同時執行多個任務時會遇到哪些挑戰。
這一篇我們要談的是,當有多個程序等待 CPU 時,系統要怎麼決定下一個要執行的程序?我們會比較各種排程演算法,討論它們的效率與公平性,並認識多核心環境下的特殊考量。
談完CPU Scheduling後,就要來關注Synchronization J個議題拉~
多個程序或執行緒同時存取共享資源時,必須避免資料不一致。這部分會說明關鍵區段問題與同步工具的運作方式,幫助你理解系統如何維持穩定。
在Synchronization中,我們會不斷提到,資源互卡這件事,那就會照程Deadlock。
當資源互相等待時,系統可能陷入無法繼續的僵局。這部分會談死鎖的形成條件、檢測方法與解決策略,讓你看懂系統如何避免整個環境停擺。
這篇我們會來談記憶體配置策略、分區管理、碎裂問題及處理方式,讓你了解資源如何被有效分配。
談完Main Memory後,就會來談虛擬記憶體。
虛擬記憶體讓系統看似擁有比實體更多的可用空間,但背後也有缺頁、替換策略、效能問題。本章會帶你理解它的實際運作原理。
除了主記憶體,資料長期存放在磁碟、SSD 等儲存裝置中。我們會談磁碟排程、儲存架構與資料可靠性設計,揭開檔案儲存的底層機制。
最後我們會探討作業系統如何組織檔案、目錄與配置方式,並談到檔案保護機制。這能幫助你理解日常操作如存檔、讀檔背後的邏輯。
希望這一系列能讓大家一步一步理解、甚至開始覺得有趣的知識旅程。
也希望我自己可以好好寫下去,麻煩大家督促我QQ
如果你也想在 30 天後對作業系統更有底氣,不想再被厚重教科書嚇退,記得按下追蹤,每天陪我聊聊OS
也歡迎在留言區分享問題,說不定會成為後續文章的加碼內容喔!